// 城市服务接口
import Router from 'koa-router'
import axios from './utils/axios'
import { _err } from './utils/public'
import menuModel from '../dbs/models/menu';
import cityModel from '../dbs/models/city';
import provinceModel from '../dbs/models/province';
const router = new Router({
  // /
  prefix: '/geo'
})
import dbsConfig from '../dbs/config'

// 外部api
const {requestUrl,sign} = dbsConfig

router.get('/getPosition',async (ctx,next) => {
  // const {status, data} = await axios.get(`${requestUrl}/geo/getPosition?sign=${sign}`)
  ctx.body = {
    // ...data
    city: '广州'
  }
  // if(status === 200) {
  //   ctx.body = {
  //     // ...data
  //     city: '广州'
  //   }
  // }else {
  //   ctx.body = {
  //     province: '',
  //     city: ''
  //   }
  // }
})

// 分类列表(菜单)
router.get('/menu',async (ctx) => {
  // 实际情况是查自己的数据
  const [{menu}] = await menuModel.find()
  
  ctx.body = menu ? menu : []
  // 教程api数据
  // const {status,data} = await axios.get(`${requestUrl}/geo/menu?sign=${sign}`)
  // ctx.body = {
  //   menu: status === 200 ? data.menu : []
  // }
})

// 所有省份
router.get('/province', async (ctx) => {
  const res = await provinceModel.find()
  ctx.body = res.map((item) => {
    return {
      id: item.id,
      name: item.value
    }
  })
})

// 根据省获取相应的城市
router.get('/province/:id', async (ctx) => {
  const {value} = await cityModel.model.findOne({id: ctx.params.id})
  ctx.body = value.map((item) => {
    return {
      id: item.id,
      name: item.name === '市辖区' || item.name === '省直辖县级行政区划' ? item.province : item.name,
      province: item.province
    }
  })
})

// 所有城市
router.get('/city', async (ctx) => {
  const res = await cityModel.find()
  let data = []
  res.forEach(item => {
    data = data.concat(item.value)
  });
  ctx.body = data.map((item) => {
    return {
      id: item.id,
      name: item.name === '市辖区' || item.name === '省直辖县级行政区划' ? item.province : item.name,
      province: item.province
    }
  })
})



// 热门城市
router.get('/hotCity', async (ctx) => {
  let list = [
    '北京市',
    '上海市',
    '广州市',
    '深圳市',
    '天津市',
    '西安市',
    '杭州市',
    '南京市',
    '武汉市',
    '成都市'
  ]
  const {status,data} = await axios.get('/geo/city')
  let arr = []
  data.forEach((item) => {
    let city = list.find((v) => item.name === v)
    if(city) arr = arr.concat(item)
  })
  if(status === 200) {
    ctx.body = arr
  }
  

})


export default router